#include "ObjetosFactory.h"


#include "../modelo/Objetos/Dinamicos/Huevo.h"
#include "../modelo/Objetos/Dinamicos/Pajaro.h"
#include "../modelo/Objetos/Dinamicos/Pollo.h"
#include "../modelo/Objetos/Dinamicos/Cuervo.h"
#include "../modelo/Objetos/Estaticos/Caja.h"
#include "../modelo/Objetos/Estaticos/CajaMetal.h"
#include "../modelo/Objetos/Estaticos/Nido.h"
#include "../modelo/Objetos/Estaticos/Manzana.h"
#include "../modelo/Objetos/Estaticos/Banana.h"
#include "../modelo/Objetos/Estaticos/Piso.h"
#include "../modelo/Objetos/Estaticos/Fondo.h"
#include "../modelo/Objetos/Estaticos/Fondo2.h"
#include "../modelo/Objetos/Estaticos/FondoSimpsons.h"
#include "../modelo/Objetos/Estaticos/Cerdo.h"
#include "../modelo/Objetos/Estaticos/Catapulta.h"
#include "../modelo/Objetos/Estaticos/Monticulo.h"
#include "../modelo/Objetos/Estaticos/Piso.h"
#include "../modelo/Objetos/Estaticos/Fondo.h"
#include "../modelo/Objetos/Estaticos/Reloj.h"

ObjetosFactory *ObjetosFactory::factory = NULL;
ObjetosFactory *ObjetosFactory::get() {
	if (factory == NULL) {
		factory = new ObjetosFactory();
	}
	return factory;
}
ObjetosFactory::ObjetosFactory()
{
}

ObjetosFactory::~ObjetosFactory()
{
}

Objeto* ObjetosFactory::crearObjeto(string tipo, unsigned short posx, unsigned short posy) {
	Objeto* o = NULL;
	if (tipo == "Caja")
		o = new Caja(posx, posy);

	if (tipo == "CajaMetal")
		o = new CajaMetal(posx, posy);
		
	else if (tipo == "Catapulta")
		o = new Catapulta(posx, posy);

	else if (tipo == "Cerdo")
		o = new Cerdo(posx, posy);

	else if (tipo == "Banana")
		o = new Banana(posx, posy);

	else if (tipo == "Manzana")
		o = new Manzana(posx, posy);

	else if (tipo == "Nido")
		o = new Nido(posx, posy, true);

	else if (tipo == "Monticulo")
		o = new Monticulo(posx, posy);

	else if (tipo == "Fondo")
		o = new Fondo();
	else if (tipo == "Fondo2")
		o = new Fondo2();
	else if (tipo == "FondoSimpsons")
		o = new FondoSimpsons();	
			
	else if (tipo == "Piso")
		o = new Piso();
		
	else if (tipo == "Reloj")
		o = new Reloj(posx);
	return o;
}
